package com.huaishushu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huaishushu.dto.DishDto;
import com.huaishushu.entity.Dish;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * <p>
 * 菜品管理 服务类
 * </p>
 *
 * @author ChiBaoBaoHuaiShuShu
 * @since 2023-05-28
 */
public interface IDishService extends IService<Dish> {

    /**
     * 新增菜品信息，操作的是两张表，还需要插入口味
     * dish、dish_flavor两张表
     * @return
     */
    void saveWithFlavor(DishDto dishDto);

    /**
     * 菜品信息分页查询
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    Page<DishDto> page(Integer page, Integer pageSize, String name);

    /**
     * 根据id来查询菜品信息和对于的口味信息
     * @param id
     * @return
     */
    public DishDto getByIdWithFlavor(Long id);

    /**
     * 修改菜品信息，操作的是两张表，还需要插入口味
     * dish、dish_flavor两张表
     * @return
     */
    void updateWithFlavor(DishDto dishDto);

    /**
     * 根据传递回来的status来判断是启用还是修改操作
     * 之后根据id来批量修改
     * @param status
     * @param ids
     * @return
     */
    void updateStatusById(Integer status, String[] ids);

    /**
     * 根据id删除菜品信息(也可批量删除)
     * @param ids （id数组）
     */
    void delete(String[] ids);

    /**
     * 根据条件来查询菜品信息
     * @param dish
     */
    //List<Dish> listByCategoryId(Dish dish);

    /**
     * 根据条件来查询菜品信息
     * 适用于前台和后台进行菜品展示
     * @param dish
     * @return
     */
    List<DishDto> listByCategoryId(Dish dish);
}
